1
Con đường đến thực thi: Hiểu về trình điều khiển biên dịch
AI031Lesson 7
00:00

Người chỉ huy: Trình điều khiển biên dịch

Hãy tưởng tượng rằng trình điều khiển biên dịch (như GCC) như một nhạc trưởng vĩ đại. Nó tự động hóa quá trình chuyển đổi phức tạp từ mã nguồn có thể đọc được thành tập tin thực thi nhị phân. Hành trình này, con đường con đường đến thực thi, bắt đầu từ thời điểm biên dịch và kéo dài đến thời điểm nạpthời điểm chạy.

Bằng cách sử dụng biên dịch riêng biệt, trình điều khiển xử lý main.csum.c độc lập với nhau. Những thay đổi ở một mô-đun không đòi hỏi toàn bộ dự án phải được biên dịch lại—chỉ file bị thay đổi là được đi qua tiền xử lý (cpp), biên dịch (cc1), và trình dịch (as) trước khi trình nối kết (ld) hợp nhất các tệp đối tượng khả chuyển sinh ra tệp đối tượng khả chuyển.

main.ccpp/cc1/asmain.osum.ccpp/cc1/assum.oldprogGóc nhìn phần cứng: Ánh xạ bộ nhớ đệm tại 0x064C Địa chỉ: 0 0110 0100 11xx | dòng bộ nhớ đệm 32 byte Tag: 0 0110 01Set: 00Offset: 11xxPhân tích mẫu truy cập_stride-1 đảm bảo hiệu suất bộ nhớ đệm L1.

Hiệu quả và thứ bậc bộ nhớ

Quyết định bố trí của trình nối kết cho grid[0][0] hoặc src[0][0] ảnh hưởng trực tiếp đến tốc độ truyền dữ liệuđộ trễ. Bằng cách căn chỉnh dữ liệu vào một dòng bộ nhớ đệm 32 byte, trình điều khiển hỗ trợ một mẫu truy cập stride-1, giảm thiểu số lần lỗi lạnh và tránh việc loại bỏ do quét theo cột. Trong mã nguồn hiệu năng cao tiên tiến, song song hóa vòng lặp đã mở rộng ($4 \times 4$ vòng lặp mở rộng) còn làm giảm thêm bản đồ từ bộ nhớ chính đến bộ nhớ đệm độ trễ bằng cách tối ưu chu kỳ tần số đồng hồ (0x32, 0x1, 0x4, 0x51).

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>